From: Florian Müllner Date: Wed, 19 Feb 2020 16:30:15 +0000 (+0100) Subject: shell/stack: Ignore hidden children for focus navigation X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~772^2^2~57 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=120b907c3371921d67828ee230e4bcc2f1b26ebb;p=gnome-shell.git shell/stack: Ignore hidden children for focus navigation ShellStack implements custom focus navigation, and will only ever navigate into its top-most child. That kind of makes sense as long as that child is actually visible, but not when it is hidden. Descend into the stack to look for a focusable child instead. https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210 --- diff --git a/src/shell-stack.c b/src/shell-stack.c index 7fc760925..7f4cb5564 100644 --- a/src/shell-stack.c +++ b/src/shell-stack.c @@ -170,6 +170,8 @@ shell_stack_navigate_focus (StWidget *widget, } top_actor = clutter_actor_get_last_child (CLUTTER_ACTOR (widget)); + while (top_actor && !clutter_actor_is_visible (top_actor)) + top_actor = clutter_actor_get_previous_sibling (top_actor); if (ST_IS_WIDGET (top_actor)) return st_widget_navigate_focus (ST_WIDGET (top_actor), from, direction, FALSE); else